package restlet;

import java.util.Vector;

import javax.jdo.PersistenceManager;

import model.KategorijaPovlastice;
import model.Util;
import model.Version;

import org.restlet.resource.ServerResource;

import restlet.interfaces.BenCatsResourceI;
import app.PMF;
import beans.BenCatBean;

public class BenCatsResource extends ServerResource implements BenCatsResourceI{

	@Override
	public Vector<BenCatBean> allBenCats() {
		Vector<BenCatBean> benCats = new Vector<BenCatBean>();
		for(KategorijaPovlastice benCat : Util.getAllEntitiesFromTable(KategorijaPovlastice.class)){
			benCats.add(benCat.toBenCatBean());
		}
		return benCats;	
	}
	
	@Override
	public Integer getVersion() {
		Version vKatPovl = Util.getEnityByFieldEqualsValue(Version.class,
				"imeKlase", KategorijaPovlastice.class.getSimpleName());
		Integer iVrednost = Integer.valueOf(vKatPovl.getVrednost());
		return iVrednost;
	}

	@Override
	public void addBenCat(BenCatBean benCat) {
		
		getLogger().warning("BenCatsResource123,place: " + benCat);
		
		//pretrazujemo bazu po nazivu
		KategorijaPovlastice rBenCat = Util.getEnityByFieldEqualsValue(KategorijaPovlastice.class, "naziv", benCat.getNaziv());
		//ako ne postoji u bazi, dodajemo ga
		if(rBenCat == null){
			KategorijaPovlastice katPovl = new KategorijaPovlastice(benCat.getNaziv());
			PersistenceManager pm = PMF.get().getPersistenceManager();
			pm.makePersistent(katPovl);
			System.out.println("Dodajemo kategoriju povlastice: " + katPovl);
			
			//apdejtujemo novu verziju klase
			Version vKatPovl = Util.getEnityByFieldEqualsValue(Version.class,
					"imeKlase", KategorijaPovlastice.class.getSimpleName());
			vKatPovl.setVrednost(vKatPovl.getVrednost()+1);
			pm.makePersistent(vKatPovl);
			
			pm.close();
		}
	}
}
